package com.kandinfo.base.common.util.redis;


import com.kandinfo.base.common.util.AppConfigUtil;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * Description： 获取redis池连接 以及相关操作
 * <p>
 * createTime : 10/11/2016
 * 
 * @author Patrick-chenzp-TG
 * @version 1.0.0
 */
public class RedisClientUtil {

	public Jedis jedis;// 非切片额客户端连接
	public JedisPool jedisPool;// 非切片连接池
	
	public RedisClientUtil() { 
        initialPool(); 
    }
	
	/**
     * 初始化非切片池
     */
    private void initialPool() { 
        // 池基本配置 
        JedisPoolConfig config = new JedisPoolConfig(); 
        
//      config.setMaxActive(20); 
        config.setMaxIdle(Integer.valueOf(AppConfigUtil.getConfig("redis.1.maxIdle").trim())); 
        config.setMaxWaitMillis(Long.valueOf(AppConfigUtil.getConfig("redis.1.maxWaitMillis"))); 
        config.setTestOnBorrow(Boolean.valueOf(AppConfigUtil.getConfig("redis.1.testOnBorrow"))); 
        
        jedisPool = new JedisPool(config, AppConfigUtil.getConfig("redis.1.host"), Integer.valueOf(AppConfigUtil.getConfig("redis.1.port")));
        
        jedis = jedisPool.getResource();
        
        jedis.auth(AppConfigUtil.getConfig("redis.1.password").trim());
    }
    
     /**
      * 释放jedis资源
      * @param jedis
      */
     public static void close(Jedis jedis) {
         if (jedis != null) {
             jedis.close();
         }
     }
}
